আমরা এবারে লজিক গেট দিয়ে তৈরি করা আরো একটি ডিজিটাল সার্কিটের কথা বলব যেটি বাইনারি সংখ্যা যোগ করতে পারে। আমরা ইতোমধ্যে জেনে গেছি যে সঠিকভাবে বাইনারি সংখ্যা যোগ করতে পারলেই প্রয়োজনে সেই একই সার্কিট ব্যবহার করে বিয়োগ, গুণ এবং ভাগ করতে পারব।
XOR লজিক গেটটি আলোচনা করার সময় আমরা বাইনারি যোগ 1 + 1 = 10 সংখ্যাটিতে বলেছিলাম এর মাঝে ডানপাশের বিটটি যোগফল এবং বাম পাশের (হাতে থাকা) বিটটি ক্যারি (carry)। যোগফলের বিটটি XOR গেট দিয়ে পাওয়া যায় কিন্তু ক্যারি বিটটি কীভাবে পাওয়া যায় সেটি তখন 0 1 1 0 আলোচনা করা হয়নি। সেটি খুবই সহজ একটি AND গেট দিয়ে পাওয়া যেতে পারে। কাজেই আমরা একটি বিটের সাথে অন্য একটি বিটের বাইনারি যোগ নিচের সার্কিট দিয়ে পেতে পারি (চিত্র 3.18)
এই ধরনের সার্কিটের নাম হচ্ছে হাফ অ্যাডার, কারণ এটি পূর্ণাঙ্গ বাইনারি যোগের সার্কিট নয়, এটি আংশিকভাবে যোগ করতে পারে। আগের ধাপ থেকে ক্যারি বিট হিসেবে 1 চলে এলে তখন যোগ করতে পারে না। প্রকৃত বাইনারি যোগে দুটি বিট যোগ করতে হলেও মাঝে মাঝেই এর আগের দুটি বিটের যোগ থেকে ক্যারি বিট চলে আসে, তখন দুইটি নয়, তিনটি বিট যোগ করার প্রয়োজন হতে পারে। নিচে দুটি বাইনারি সংখ্যার যোগফল দেখানো হয়েছে।
নিজে কর : মৌলিক গেট দিয়ে হাফ অ্যাডার তৈরি কর
যদিও দুটি করে বিট যোগ করা হয়েছে কিন্তু তীর চিহ্ন দিয়ে দেখানো বিট দুটির বেলায় আগের ধাপ থেকে 1 বিটটি এসেছে বলে আসলে তিনটি বিট যোগ করা হয়েছে। আমরা অন্যভাবেও বলতে পারি, প্রতিবারই আমরা তিনটি বিট যোগ করেছি, কিন্তু অন্য ধাপগুলোতে ক্যারি বিটের মান ছিল । কাজেই এবারে আমরা x, y এবং CIN, এই তিনটি ইনপুটের জন্য ট্রুথ টেবিলটি লিখে ফেলতে পারি। (টেবিল 3.6) এখানে x, y হচ্ছে বাইনারি যোগের প্রদত্ত সংখ্যার বিট এবং Cin হচ্ছে আগের ধাপ থেকে আসরা ক্যারি বিটের মান। ট্রুথ টেবিলে আউটপুট দুটি, S এবং Cour S হচ্ছে দুটি বিটের যোগফল, Cour হচ্ছে ক্যারি বিট যেটি পরের ধাপে CIN হিসেবে যুক্ত হয়।
ট্রুথ টেবিলের দিকে তাকিয়ে আমরা দেখতে পাচ্ছি x, y এবং Cin -এর সম্ভাব্য আটটি ভিন্ন ভিন্ন ইনপুটের ভেতর চারটি ক্ষেত্রে যোগফল (S) এবং চারটি 1 1 1 1 1 1 ক্ষেত্রে ক্যারি (Cour) আউটপুটের মান 1 হতে হবে। ডিকোডারের বেলায় আমরা যেভাবে AND গেটের আউটপুট 1 পাওয়ার জন্য NOT গেট দিয়ে ইনপুট পরিবর্তন করেছিলাম, এখানেও আমরা হুবহু একই পদ্ধতি গ্রহণ করতে পারি। 3.19 চিত্রে সেভাবে সার্কিটটি এঁকে দেখানো হলো। আমাদের আউটপুট দুটি (S এবং Cour) পাওয়ার জন্য AND গেটগুলোর OR গেট দিয়ে একত্র করে নেয়া হয়েছে। তবে তোমরা একটু অবাক হয়ে ভাবতে পার, s এবং Cour দুটির লজিক একই ধরনের থাকার পরও Cour -এর জন্য সার্কিটটি
উদাহরণ : S এর জন্য আউটপুটটি মৌলিক পেট দিয়ে আরও সরল করা সম্ভব না। তবে Cour -এর সমীকরণটি আরও সরল করা সম্ভব। তোমরা কি আরও সরল করে দেখাতে পারবে? উত্তর : যেহেতু A + A = A, তাই আমরা সর্বশেষ টার্স xyult অন্য তিনটি টার্মের প্রত্যেকটার সাথে যোগ করতে পারি :
COUT = (xyCIN+ xyCIN) + (xYCIN +XYCIN) + (xYCIN +XYCIN) এখন আমরা এভাবে সাজাতে পারি
Cour = xy (CIN + Cis) + yCIN (X + x) + xCIN(7 + y)
যেহেতু A + Ā = 1, আমরা লিখতে পারি : Cour = xy + yCIN + x CIN
দেখতে পাচ্ছ পুরো সার্কিটটি অনেক সরল হয়ে গেছে, কিন্তু এটি সঠিক আউটপুট দেবে, ইচ্ছা করলে সেটি পরীক্ষা করে দেখতে পার।
| নিজে কর : দুইটি অর্থযোগ (হাফ অ্যাডার) বর্তনী দিয়ে একটি পূর্ণযোগ (ফুল অ্যাডার) বর্তনী বানানো সম্ভব | কী? উত্তরের সাপেক্ষে যুক্তি দেখাও।
দুটি বিট যোগ করার এই সার্কিটটিকে ফুল এডার বলে । যেকোনো সত্যকার কাজের সার্কিটে অনেক বিট যোগ করতে হয়, কিন্তু প্রত্যেকটি বিটের জন্য যেন এই পুরো সর্কিটটি আঁকতে না হয় সেজন্য আমরা পুরো সার্কিটটিকে একটা ব্লক ডায়াগ্রাম দিয়ে দেখিয়েছি, এখানে শুধু ইনপুট এবং আউটপুট লাইনগুলো দেখানো হয়েছে। চার বিটের একটি বাইনারি যোগের জন্য কীভাবে চারটি ফুল এডার সার্কিট যোগ করতে হবে সেটি ব্লক ডায়াগ্রাম গুলো যুক্ত করে দেখানো হলো। (চিত্র 3.20)
লক্ষ কর, প্রথম ব্লক ডায়াগ্রামে CIN1 = 0 কারণ প্রথম দুটি বিট যোগ করার সময় আগের কোনো ধাপ থেকে কিছু CIN আসা সম্ভব নয়। উল্লেখ্য যে, চার বিট যোগ করতে হলে যোগফল সঠিকভাবে দেখাতে হলে কিন্তু সর্বশেষ Cour -এর জন্য পঞ্চম বিট প্রয়োজন হয়।
আরও দেখুন...